<%@ page import="com.dys.entity.User" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
<%--
    从域中取出数据
    El表达式在获取对象属性值得时候,是通过对象的属性的get方法获取的
    保证对象的要获取的属性必须有对应get方法才可以
    EL表达式在使用时是不需要import其他类的
    El如果获取的是NULL值,是不展示任何信息的
--%>
<%--向pageContext域中放数据--%>
<%
    pageContext.setAttribute("msg", "page域");
    pageContext.setAttribute("user", new User(5, "鹿晗", "123456"));
%>
<%--EL表达式：从域中取出数据--%>
pageContext域中的数据：<br/>
msg: ${pageScope.msg} <br/>
username:${pageScope.user.username} <br/>
<hr/>
request域中的数据: <br/>
msg: ${requestScope.msg} <br/>
username: ${requestScope.user.username} <br/>
<hr/>
session域中的数据: <br/>
msg: ${sessionScope.msg} <br/>
username: ${sessionScope.users[0].username} <br/>
<hr/>
application域中的数据: <br/>
msg: ${applicationScope.msg} <br/>
username: ${applicationScope.userMap.a.username} <br/>

<%--
    EL表达式在取出数据的时候是可以省略域标志的
    EL表达式会自动依次到四个域中去找数据
--%>
<hr/>
省略域标志的 EL表达式: <br/>
PageContext域中的数据：${user1.username} <br/>
Request域中的数据：${user.username} <br/>
Session域中的数据：${users[1].username} <br/>
Application域中的数据：${userMap.a.username}
<hr/>
<%--
    ${数据的名字}如果省略域标志,取数据的顺序如下
    pageContext
    request
    session
    application
--%>
${msg}<br/>
<%--
    移除域中的数据
--%>
<%
    // pageContext.removeAttribute()方法会移除四个域中的所有的同名的数据
    // pageContext.removeAttribute("msg");
    request.removeAttribute("msg");
%>
pageContextMsg: ${pageScope.msg}<br/>
requestMsg: ${requestScope.msg}<br/>
sessionMsg: ${sessionScope.msg}<br/>
applicationMsg: ${applicationScope.msg}<br/>
<%--
   EL表达式获取请求中的参数
--%>
<hr/>
EL表达式获取请求中的参数: <br/>
username: ${param.username}<br/>
hobby: ${paramValues.hobby[0]}<br/>
hobby: ${paramValues.hobby[1]}<br/>
<hr/>
</body>
</html>
